This invention relates generally to communication systems and more particularly to adaptive filters used in such communication systems.
As is known in the art, adaptive filters have been used in communication systems to provide such functions as channel phase and amplitude dispersion equalization and channel echo cancellation. For example, in transmitting information to a receiver, such transmitted information passes through a communication channel. The communication channel may be a pair of wires, (e.g., a so-called twisted pair such as used in telephones, a fiber optic cable, a coaxial cable) or may be a designated part of the electromagnetic spectrum, such as a radio or wireless communication channel. Further, as is also known in the art, prior to passing the information into the channel the information undergoes some form of modulation. One form of modulation is pulse amplitude modulation (PAM). With pulse amplitude modulation (PAM) samples of the information are taken and converted into pulses having amplitudes corresponding to the amplitudes of the sampled information signal. One form of PAM is baseband PAM. Baseband PAM is commonly used for wire pair communication channels where the signal spectrum is allowed to extend down to zero frequency (d.c.). Another form of PAM is passband PAM, commonly used in fiber, coaxial, and wireless communication channels.
In bi-directional communication systems, a transmitter and a receiver at one site are packaged together as a modulator/demodulator, or modem, for communication with another modem at another site through the communication channel. In one such system, the information to be transmitted (i.e., the stream of pulses having amplitudes related to the sampled information signal) is digitized into a stream of bits. The transmitter typically includes a coder for converting (i.e., mapping) an incoming stream of bits into a corresponding stream of data symbols. While a bit is either a logic 1 or a logic 0, the coder can map the bits into other symbols. For example, a simple coder may merely use the same binary code; i.e., a logic 1 maps into a 1 and a logic 0 maps into a 0. On the other hand, a more complicated coder may map a logic 0 into a -1 and a logic 1 into +1. A still more complicated coder may map a 00 bit sequence into -3, a 01 bit sequence into -1, a 10 bit sequence into 1, and a 11 bit sequence into 3. With a passband PAM having quadrature modulating carrier signals (a+jb), a coder may map a 00 bit sequence into +1, a 01 bit sequence into +j, a 10 bit sequence into -1, and a 11 bit sequence into -j. Since the coder may map multiple bits into a single data symbol, a distinction is made between symbol rate and bit rate, the former also being called the baud rate. Thus, if the coder maps n bits into a symbol with size mn, the baud rate is (1/m)th the bit rate.
Thus, with PAM, a sequence of continuous-time pulses is coded into a sequence of symbols. The sequence of symbols is passed through a transmit filter where the symbols are converted into a continuous-time signal for transmission to the receiver through the communication channel. Thus, for a transmit filter having a rectangular impulse response, with a sequence of symbols +3, +1, -3, +1 at a baud rate (1/T), the output of the transmit filter will have a level +3, followed T seconds later with a level +1, followed T seconds later with a level -3, followed T seconds later with a level +1. The receiver samples the signals fed to it from the communication channel. More particularly, the receiver needs to extract the discrete-time information (e.g., +3, +1, -3, +1) from the continuous-time waveform. Unfortunately, the continuous-time waveform is typically corrupted by the communication channel. In order to construct a discrete-time signal from the continuous-time signal, the receiver first extracts timing information using various synchronization techniques, reduces channel noise and distortion using filtering techniques and produces an estimate of the symbol sequence using a slicer. For example, assume that the symbol -3 is transmitted but because of channel corruption the symbol -3.56 is received by the slicer. The slicer makes a decision as to whether the received symbol, -3.56, is -3, -5, or -1. Here, for example, because the received symbol is closest to -3, the slicer produces an estimated output of -3.
Finally, the estimated symbol sequence produced by the slicer is converted into a bit stream using a decoder, or de-mapper, which performs the inverse mapping to the coder used in the transmitter. In this example, the de-mapper would convert the estimated output symbol -3 into 00.
One type of channel corruption results from linear amplitude and phase dispersion in the channel. This amplitude and phase dispersion results in the pulses broadening thereby causing intersymbol interference. To reduce, or ideally eliminate, intersymbol interference an adaptive filter is configured as a linear equalizer and such equalizer is sometimes used at the front-end of the receiver to compensate for channel amplitude and phase dispersion. Equalization techniques are described in a textbook entitled, Digital Communication by Edward A. Lee and David G. Messerschmidt published by Kluwer Academic Publishers, Boston/Dordrech/London 1988.
As is also known in the art, it is sometimes necessary to cancel, or filter, transmitted signals which echo back to the receiver. Thus, a local modem receiver receives a composite signal made up of the signal transmitted by a remote modem transmitter and an echo of the signal transmitted by the local modem transmitter.
One type of filter used to reduce channel noise and distortion (e.g., inter-symbol interference) and cancel echo signals is an adaptive filter; the former being referred to as a linear adaptive equalization filter, such as described in chapters 8 and 9 of the above referenced textbook, and the latter being referred to as an echo canceler, as described in chapter 18 of such textbook. Considering the linear equalizer, as described in chapter 9, since the characteristics of the channel are not known, a priori, adaptive equalizers are typically used. One form of adaptive equalizer includes a finite transversal filter with a finite number of coefficient weighting taps. The output of taps of the filter are summed to produce the filter output. The filter output is then fed to the slicer. The object of the adaptive equalizer is to adapt the weighting coefficients to minimize noise and intersymbol interference. The adaptation of the equalizer is driven by an error signal produced by subtracting the slicer input and the slicer output. The error signal indicates the direction that the coefficients must be moved to more accurately represent the data symbols at the slicer input. In the absence of intersymbol interference and noise, the slicer input would precisely equal the transmitted data symbols, and the slicer output would equal the slicer input; i.e., the error signal would be zero.
If there were noise alone at the slicer input, but no intersymbol interference, the error signal would be non-zero, but would average to zero resulting in no net change in the coefficients. When there is intersymbol interference, the resulting error signal is used to adjust the coefficients to reduce such intersymbol interference. Thus, because the slicer regenerates a noise- and intersymbol interference-free representation of the transmitted data symbols, a comparison of these symbols with the slicer input can be used to generate an error signal. The error signal is used in a feedback arrangement to adjust the coefficients properly so that noise and intersymbol interference are reduced.
One such adaptive equalizer is shown in FIG. 1. There, the adaptive equalizer 10 includes a finite impulse response (FIR) filter 12 having a plurality of serially coupled storage stages, or registers 18.sub.-M to 18.sub.+M, a plurality of tap arithmetic units 20.sub.-M through 20.sub.+M, and a summer, or adder, 13. Thus, the FIR 12 has 2M+1 taps, i.e., taps -M to +M, as shown.
After the incoming continuous-time signal is digitized by analog to digital converter (A/D) 16, the digitized samples, r.sub.n, are fed sequentially to the input 17 of a finite impulse response filter (FIR) 12. The FIR 12 includes serially coupled registers 18.sub.-M through 18.sub.+M, as shown. Thus, considering an exemplary one of the registers 18.sub.-M through 18.sub.+M, here register 18.sub.M, such register stores sample, r.sub.n-m, as shown. The output of each of the registers 18.sub.-M through 18.sub.+M is also fed to a corresponding one of the tap arithmetic units 20.sub.-M through 20.sub.+M, respectively, as shown, for multiplication (i.e., weighting) by coefficients c.sup.-M.sub.n through c.sup.+M.sub.n, respectively, selected, in a manner to be described, to reduce the effects of channel noise and intersymbol interference. The weighted stored samples produced by the tap arithmetic units 20.sub.-M through 20.sub.+M at taps 11.sub.-M through 11.sub.+M are summed in the summer (i.e, adder) 13 of the FIR 12 and the accumulated results (i.e., the output of the FIR 12) are fed to a slicer 14, as shown.
During an initial acquisition or training phase, the transmitter, not shown, generates, and transmits, via the channel, to the remote site receiver. The remote site receiver has, in the equalizer 10 thereof, a data symbol sequence known to the remote site receiver and stored in an internal symbol generator 24 of the receiver. Thus, during the initial training mode, a training mode signal on line 25 activates a multiplexer 26 so that the known symbol sequence stored in the internal symbol generator 24 passes to a differencing network (i.e., subtractor) 28 along with the output of the FIR 12. The output of the differencing network 28 is an error signal, e.sub.n. The sign of the error signal, e.sub.n, is determined by a comparator 29, as shown, and a one bit representation of the sign of e.sub.n (i.e., sgn e.sub.n) is produced on line 41. The exponent of a time varying adaptation coefficient, .beta., is computed in a fixed to floating point converter 31 and the computed exponent of .beta. (i.e, b) is produced on bus 47, as shown. The exponent of .beta. (i.e., b) and the sign of e.sub.n (i.e., sgn e.sub.n) are fed to tap arithmetic units 20.sub.-M through 20.sub.+M, as shown. An exemplary one of the tap arithmetic units 20.sub.-M through 20.sub.+M, here tap arithmetic units unit 20.sub.m, is shown to include a register 31 for storing the weighting coefficient, c.sup.m.sub.n, for the tap 11.sub.m. The data, i.e., sample r.sub.n-m, stored in the register 18.sub.m for the tap 11.sub.m is fed to a coefficient update multiplier 32 along with the exponent of .beta. (i.e., b) and the sign of e.sub.n (i.e., sgn e.sub.n). More particularly, the multiplier 32 includes: a shifter 76 which shifts the bits of the data sample r.sub.n-m a number of bits equal to the exponent, b, on bus 47; and, a multiplier 77 which multiplies the output of the shifter 47 by +1 or -1 in accordance with the sign of the error signal e.sub.n on line 41. The output of the multiplier 77 (i.e., the output of multiplier 32) is subtracted in subtractor 33 from the present coefficient, c.sup.m.sub.n, now stored in the register 31 to produce the next coefficient, c.sup.m.sub.n+1, to be used by the FIR 12. The present coefficient, c.sup.m.sub.n, stored in register 31 is used for weighting (i.e., multiplication in weighting multiplier 34) the data, r.sub.n-m, stored in the register 18.sub.m. The resulting product produced by weighting multiplier 34 is the weighted data output of tap 11.sub.m, i.e., c.sup.m.sub.n r.sub.n-m.
Thus, it follows that if the symbol sequence transmitted and filtered by FIR 12 (i.e., the output of FIR 12) and the symbol sequence, an, produced by the slicer 14 are the same, the output of the slicer 14, a.sub.n, properly represents the transmitted data and the error signal, e.sub.n, is zero. If, on the other hand, the error signal, e.sub.n, is not zero, the FIR 10 adjusts the coefficients c.sup.-M.sub.n through c.sup.+M.sub.n, in a feedback loop nulling arrangement to drive the error signal, e.sub.n, towards zero. Thus, ideally at the end of the training mode, the registers 18.sub.-M through 18.sub.+M will store coefficients c.sup.-M.sub.n through c.sup.-M.sub.n, respectively, to produce an error signal, e.sub.n, of zero and therefore the characteristics of the FIR 12 will be "matched" to the characteristics of the transmission channel. Thus, once the a priori agreed upon training mode has elapsed, the signal on line 25 is changed and the slicer 14 output is gated out of the equalizer 10 via gate 38 and the slicer 14 output is used by the receiver during the normal operating mode. If any error signal, e.sub.n, results from changes in the characteristic in the channel, the error signal, e.sub.n, after modification by the adaptation coefficient, .beta., (i.e. .beta.e.sub.n) is used as a feedback signal to adjust the coefficients c.sup.-M.sub.n through c.sup.+M.sub.n so that the error signal e.sub.n is driven towards zero, i.e, so that the equalizer 10 removes the effects of channel noise and intersymbol interference producing effects.
The system described in FIG. 1, however, has not been found to provide adequate reduction of channel noise and intersymbol interference because approximating the error e.sub.n to only its sign is insufficient, particularly for small errors. That is, with small values of error (e.sub.n) there are system instabilities leading to poor signal-to-noise ratios (SNRs). In an attempt to compensate for these instabilities, the value of the adaptation coefficient was reduced over time in several steps. The adaptation of the equalizer, however, depended on the nature of the channel. Using a particular sequence for reducing the adaptation coefficient, unfortunately, did not work adequately on certain channels.
In order to improve the performance of the system 10 (FIG. 1), the system was modified into the system 10' shown in FIG. 2. It is first noted that elements in the system 10' which are the same as the elements in system 10 are designated using the same numerical designation. Here, it is noted, that the output of differencing network 28, e.sub.n, is fed, via an adaptation coefficient, .beta., multiplier 30, to the tap arithmetic units 20'.sub.-M through 20'.sub.+M, as shown. The error e.sub.n produced by the differencing network 28 and the adaptation coefficient, .beta., are in fixed point format. Both are fed to a fixed point, coefficient update multiplier 30, as shown. The product, .beta.e.sub.n, is in fixed point format and is fed to a fixed point multiplier 32' along with the data, i.e., sample, r.sub.n-m, stored in the register 18.sub.m for the tap 11.sub.m. The output of the multiplier 32' is subtracted in subtractor 33' from the present coefficient, c.sup.m.sub.n, now stored in the register 31 to produce the next coefficient, c.sup.m.sub.n+1, to be used by the FIR 12'. The present coefficient, c.sup.m.sub.n, stored in register 31 is used for weighting (i.e., multiplication in weighting multiplier 34) the data, r.sub.n-m, stored in the register 18.sub.m. The resulting product produced by weighting multiplier 34 is the weighted data output of tap 11.sub.m, i.e., c.sup.m.sub.n r.sub.n-m.
The adaptation process may be described by the following equations: ##EQU1## Here: e.sub.n is the error signal produced by differencing network 28;
c.sup.m.sub.n is the m-th tap equalizer coefficient; PA1 r.sub.n-m is the received data sample and stored in the register 18.sub.m ; PA1 a.sub.n is the sliced data (i.e., output of slicer 14; and PA1 .beta. is the adaptation coefficient.
(The subscripts indicate the sample time value.)
Referring to FIG. 2, the error signal, e.sub.n, is computed in equation (1) as the difference between the output of the FIR filter 12' and the output of the slicer 14. The update of the FIR 12' coefficients is performed using equation (2). Thus, FIG. 2 shows the block diagram for an exemplary one of the plurality of tap arithmetic units, here tap arithmetic unit 20'.sub.m, which implements the equalizer operation described by (1) and (2). The coefficients are stored in registers 31. There are two multipliers; an update multiplier 32' and a weighting multiplier 34. Weighting multiplier 34 performs the multiplication of the coefficient with data stored in register 18.sub.m for the partial FIR result, i.e., equation (1), and update multiplier 32' performs the multiplication of the error, e.sub.n, with data stored in register 18.sub.m necessary for coefficient update as in equation (2).
The data stored in the registers 18 and 31 are in fixed point format. Typical values are 10-12 bits for data stored in register 18.sub.m, 18-20 bits for coefficient register 31. Only the 12 most significant bits are used by the multiplier 34, 18 bits for the error .beta.e.sub.n because the value of the error, e.sub.n, decreases significantly during the adaptation process. Therefore, the sizes of the two multipliers 32', 34 are 12.times.18=216 bits for update multiplier 32' and 12.times.12=144 bits for coefficient multiplier 34.
With an echo canceler, a composite signal made up of the signal transmitted by a remote modem transmitter and an echo of the signal transmitted by the local modem transmitter is fed to a differencing network. Also fed to the difference network is the output of a finite impulse response filter (FIR). The FIR is fed by the data being transmitted by the local transmitter. An error signal is produced by the differencing network and is fed to the FIR filter to modify the coefficients thereof in a manner similar to the operation of the FIR described above in connection with FIGS. 1 and 2. Therefore, ideally the echo canceler removes the local transmitter portion of the received composite signal from such composite received signal to produce at the output of the differencing network a signal representative of the signal transmitted by the remote modem transmitter albeit corrupted with any intersymbol interference and noise. The output of the differencing network is typically fed to a linear equalizer to reduce such intersymbol interference and noise.